package xiancheng.general;

/**
 * 
 * @author Jin Jing
 * 
 * Thread对象创建好后，调用start方法，产生一个新的控制线程，虚拟机调用新线程的run方法，从而激活新线程。
 * 
 * Thread.run方法并不抛出任何异常
 * 
 * Thread.currentThread获得当前运行的Thread对象。当前运行线程总是存在的，main方法本身就是一个系统创建的线程。
 * 
 * 要使线程执行所期望的功能，可以继承Thread类，提供新的run方法，或创建一个Runnable对象，并把它传送给线程的构造函数。
 * Thread类本身实现了Runnable接口。
 * 
 * Thread.interrupt()方法不会中断一个正在运行的线程。
 * 这一方法实际上完成的是，在线程受到阻塞时抛出一个中断信号，这样线程就得以退出阻塞的状态。
 * 更确切的说，如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞，
 * 那么，它将接收到一个中断异常（InterruptedException），从而提早地终结被阻塞状态。
 * 
 * 把线程的start调用放在try catch里，并不能捕获新线程run中抛出的异常
 * 它知识简单地捕获由start抛出的异常
 * 
 * 调试线程：
 * public String toString()返回线程的字符串表示，包括名字、优先级及所在线程组的名字
 * public static void dumpStack()在System.out上打印当前线程的栈轨迹
 * 
 *
 */
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Thread worker = new Thread();
		//worker.interrupt();
		System.out.println(Thread.currentThread().getName());
		

	}

}
